﻿using Autofac;
using Autofac.Core;
using Autofac.Core.Registration;
using System.Reflection;

namespace B.MES.SLY.API
{
    public class AutoFacFile:Autofac.Module
    {
        /// <summary>
    /// 重写模块加载方法以自定义依赖注入注册过程
    /// </summary>
    /// <param name="builder">容器构建器，用于注册类型和配置依赖注入</param>
      protected override void Load(ContainerBuilder builder)
      {
          // 加载指定的程序集，这里加载的是业务服务程序集
          var assemly = Assembly.Load("B.MES.SLY.Service");
      
          // 注册程序集中所有名称以'Service'结尾的类型，将其实现的接口作为服务注册，并设置其生命周期范围
          builder.RegisterAssemblyTypes(assemly).Where(x => x.Name.EndsWith("Service")).    AsImplementedInterfaces  ().InstancePerLifetimeScope();
      
          // 调用基类的Load方法，确保基础的模块加载逻辑得以执行
          base.Load(builder);
      }
    }
}
